/* 

一个机器人位于一个 m x n 网格的左上角 （起始点在下图中标记为 “Start” ）。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角（在下图中标记为 “Finish” ）。

问总共有多少条不同的路径？

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/unique-paths
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

*/

/**
 * @param {number} m
 * @param {number} n
 * @return {number}
 */
var uniquePaths = function (m, n) {
    let memo = [];

    for (let row = 0; row < m; row++) {
        memo.push([]);
        memo[row][0] = 1;
    }

    for (let col = 0; col < n; col++) {
        memo[0][col] = 1;
    }

    for (let row = 1; row < m; row++) {
        for (let col = 1; col < n; col++) {
            memo[row][col] = memo[row - 1][col] + memo[row][col - 1];
        }
    }

    return memo[m - 1][n - 1];
};